Implementing User-level Value-weak Hashtables
نویسنده
چکیده
Value weak hashtables retain only weak references to the values associated with either a strongly or weakly referenced key. Value-weak hashtables automatically remove entries with invalid weak references, which occur when the collector reclaims a weakly referenced value. Value-weak hashtables provide a convenient way to automatically manage a table of information whose entries do not need to exist once the values associated with the keys no longer need to exist. However, most Scheme implementations do not provide value-weak hashtables by default in their base library. Keyweak hashtables are more common. This paper presents an user-level technique for implementing value-weak hashtables that relies on features commonly found or that could be implemented in most implementations. This makes value-weak hashtables a practical reality for most Scheme users without requiring additional work on the implementation code itself. Programmers may, therefore, utilize value-weak hashtables in code that targets a wider range of implementations.
منابع مشابه
Hashconsing in an Incrementally Garbage-Collected System
This article describes the implementations of weak pointers, weak hashtables and hashconsing in version 3.10.2 of the Objective Caml system, with focus on several performance pitfalls and their solutions.
متن کاملRobust Intersections under Floating Point
Our strategy for handling intersections robustly in floating point is to register degeneracies with tolerances in a hierarchical manner before registering the top level intersection primitives in order from most degenerate (vertex-vertex) to least, followed by the top level primitives (edge-edge and triangle-vertex in 2D, triangleedge and tetrahedron-vertex in 3D). Intersection pairs are stored...
متن کاملReturn Value Prediction in a Java Virtual Machine
We present the design and implementation of return value prediction in SableVM, a Java Virtual Machine. We give detailed results for the full SPEC JVM98 benchmark suite, and compare our results with previous, more limited data. At the performance limit of existing last value, stride, 2-delta stride, parameter stride, and context (FCM) sub-predictors in a hybrid, we achieve an average accuracy o...
متن کاملبررسی محیط رابط کاربری پایگاه اطلاعاتی نمایۀ نشریات فارسی از دیدگاه کتابداران کتابخانههای عمومی کشور
Purpose: This article presents results from a survey on the user interface environment of Persian journals databases from the viewpoints of Iranian public librarians. Methodology: Adopting a survey approach, this study examines the views and experience of public librarians about about the user interface environment of Persian journals databases, taking into account five dimensions and 58 crit...
متن کاملTwo Steps Towards Automating Efficient Solution of Inverse Problems
We have combined symbolic mathematics with code generation to create a user–friendly environment for specifying finite element methods. The motivation behind this approach is to automate the boring and error-prone task of implementing variational forms of PDEs, which is a cornerstone when developing finite element simulators. By employing a symbolic engine in a high–level language we allow the ...
متن کامل